package com.hospital.service.project.mapper;

import com.hospital.service.project.model.param.ProInfoBaseQueryForOneRowParam;
import com.hospital.service.project.model.vo.ProInfoBaseVo3;
import common.core.entity.ProjectImportSuperEntity;
import com.hospital.service.project.entity.ProInfoBase;

import com.hospital.service.project.model.param.ProInfoBaseQueryPageParam;
import com.hospital.service.project.model.vo.ProInfoBaseVo;
import enhance.plus.logic.LogicBaseMapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 实验项目基本表 实体类
 *
 * @author xhl
 * @created 2020-10-10 13:58:34
 */
@Mapper
public interface ProInfoBaseMapper  extends LogicBaseMapper<ProInfoBase> {

    /**
     * 得到数据库中最大的项目检索编号
     *
     * @return
     * @param prefix
     */
    String getMaxProjectNumber(String prefix);

    /**
     * 查询一条数据
     *
     * @param projectNumber
     * @return
     */
    ProInfoBaseVo queryOne(@Param("projectNumber") String projectNumber);

    /**
     * 分页查询数据
     *
     * @param param
     * @param first
     * @return
     */
    List<ProInfoBaseVo> queryPage(@Param("param") ProInfoBaseQueryPageParam param
            ,@Param("first") Long first);

    /**
     * 得到需要导出的数据
     *
     * @param projectNumberList
     * @return
     */
    List<ProjectImportSuperEntity> getData(@Param("projectNumberList") List<String> projectNumberList);

    /**
     * 查询子项目的基本信息
     *
     * @param param
     * @return
     */
    ProInfoBaseVo3 querySonMessage(@Param("param") ProInfoBaseQueryForOneRowParam param);

    /**
     * 最大编号
     * @param formName
     * @return
     */
    String getMaxNumberOther(@Param("formName")String formName,@Param("field")String field,@Param("prefix")String prefix);
}
